package com.sdmcro.util

import java.util.regex.Pattern

object Validator {

    /**
     * 手机号校验，支持常见的 11 位手机号格式
     * @param phoneNumber 待校验的手机号
     * @return 若手机号格式正确返回 true，否则返回 false
     */
    fun isPhoneNumberValid(phoneNumber: String): Boolean {
        val pattern = Pattern.compile("^1[3-9]\\d{9}$")
        return pattern.matcher(phoneNumber).matches()
    }

    /**
     * 密码复杂度校验，要求密码长度在 8 - 20 位之间，
     * 至少包含一个大写字母、一个小写字母和一个数字
     * @param password 待校验的密码
     * @return 若密码符合复杂度要求返回 true，否则返回 false
     */
    /**
     * 密码复杂度校验，要求密码长度至少为 8 位，
     * 至少包含一个大写字母、一个小写字母、一个数字和一个符号
     * @param password 待校验的密码
     * @return 若密码符合复杂度要求返回 true，否则返回 false
     */
    fun isPasswordValid(password: String): Boolean {
        val pattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$")
        return pattern.matcher(password).matches()
    }

}